ensure it is non-existent. This changes throws an explicit exception
when xc_domain_getinfo returns an error, instead of triggering an
internal python error. It then handles the exception in dom_get by
returning None, which callers already expect to mean failure.
Signed-off-by: Robert Read <robert@xensource.com>
return PyErr_NoMemory();
nr_doms = xc_domain_getinfo(xc->xc_handle, first_dom, max_doms, info);
+
+ if (nr_doms < 0)
+ return PyErr_SetFromErrno(xc_error);
list = PyList_New(nr_doms);
for ( i = 0 ; i < nr_doms; i++ )
@param dom: domain id
@return: info or None
"""
- domlist = xc.domain_getinfo(dom, 1)
- if domlist and dom == domlist[0]['dom']:
- return domlist[0]
+ try:
+ domlist = xc.domain_getinfo(dom, 1)
+ if domlist and dom == domlist[0]['dom']:
+ return domlist[0]
+ except Exception, err:
+ # ignore missing domain
+ log.exception("domain_getinfo(%d) failed, ignoring", dom)
return None
class XendDomainInfo: